#include <iostream>
#include <cstdlib>
#include <vector>

#include "Neuron.h"
#include "NetworkParameters.h"
#include "Manager.h"
#include <boost/lambda/lambda.hpp>

using namespace std;

int main()
{
    // initialize and print network parameters
    NetworkParameters *networkParameters = new NetworkParameters();

    Manager manager;
    manager.Initialize(networkParameters);

    manager.Run();
	
	vector<Neuron*>::iterator neuronIterator;
	for (neuronIterator = manager.m_neurons -> begin(); neuronIterator != manager.m_neurons -> end(); ++neuronIterator)
	{
		Neuron *neuron = ((Neuron*)*neuronIterator);
		
		cout << "Neuron Id: " << neuron -> get_Id() << " charge: " << neuron -> get_ChargeValue() << endl;
	}

    return 0;
}